Security in remote computer program execution is a continuous battle, especially with the recent surge in cloud networks and expanded enterprise networks, allowing users unfettered access to large networks of computers. The combined power and speed of program execution on multiple computers is advantageous, but may also be subject to prying eyes. Any or all of the remote computers may be under the control of a malicious user or attacker, compromising precious confidential information.
Thus, there is a need for a method and system to execute a program on an untrusted computer, or plurality of computers, such that the executing program and data is kept private from an attacker that has complete access to the untrusted computer(s). The invention is directed to these and other important needs.